
'''
	collections是Python内建的一个集合模块，提供了许多有用的集合类和方法。
	print(dir(collections))
'''
from collections import OrderedDict


# 基础符号类
class Symbol:
	def __init__(self,name,symbol_type=None):
		# 符号名称
		self.name=name;
		# 符号类型
		self.symbol_type=symbol_type;

	def viewTree(self):
		return {
			'Symbol':{
				'name':self.name,
				'symbol_type':self.symbol_type,
			}
		}

# 添加内置类型符号类
class BuiltinTypeSymbol(Symbol):
	def __init__(self, name):
		# 调用基类构造函数初始化
		super().__init__(name);

	def __str__(self):
		# 返回符号名称
		return self.name;

	def viewTree(self):
		return {
			'BuiltinTypeSymbol':{
				'name':self.name,
			}
		}


# 添加变量符号类
class VarSymbol(Symbol):
	def __init__(self, name, symbol_type):
		# 调用基类构造函数初始化
		super().__init__(name, symbol_type)

	def __str__(self):
		return f'<{self.name}:{self.symbol_type}>'  # 返回符号信息

	def viewTree(self):
		return {
			'VarSymbol':{
				'name':self.name,
				'symbol_type':self.symbol_type,
			}
		
		}